客户端实现
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
接下来我们看一个完整的网络程序的示例,此时我们在并不了解底层实现细节(操作系统资源、网络路由、IP地址查询、物理传输)的情况下就可以很轻松的实现网络编程。
下面的GreetingClient是一个客户端程序,该程序通过Socket连接到服务器并发送一个问候,然后等待一个响应。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class GreetingClient {
public static void main(String[] args) {
String serverName = "localhost";
int port = 6666;
try {
System.out.println("准备连接至服务器: " + serverName + ", 端口: " + port);
Socket client = new Socket(serverName, port);
System.out.println("服务器Socket地址: " + client.getRemoteSocketAddress());
// 向服务器发送数据
OutputStream outToServer = client.getOutputStream();
DataOutputStream out = new DataOutputStream(outToServer);
out.writeUTF(client.getLocalSocketAddress().toString());
// 从服务器读取数据
InputStream inFromServer = client.getInputStream();
DataInputStream in = new DataInputStream(inFromServer);
System.out.println("[Client:接收数据]: " + in.readUTF());
// 关闭Socket
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在线练习
{$ activeFileHint $}